<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 6.Z字形变换
        将一个给定字符串 s 根据给定的行数 numRows ，以从上往下、从左到右进行 Z 字形排列。

        比如输入字符串为 "PAYPALISHIRING" 行数为 3 时，排列如下：

        P   A   H   N
        A P L S I I G
        Y   I   R
        之后，你的输出需要从左往右逐行读取，产生出一个新的字符串，比如："PAHNAPLSIIGYIR"。

        请你实现这个将字符串进行指定行数变换的函数：

        string convert(string s, int numRows);
         

        示例 1：

        输入：s = "PAYPALISHIRING", numRows = 3
        输出："PAHNAPLSIIGYIR"

        示例 2：

        输入：s = "PAYPALISHIRING", numRows = 4
        输出："PINALSIGYAHRPI"
        解释：
        P     I    N
        A   L S  I G
        Y A   H R
        P     I

        示例 3：

        输入：s = "A", numRows = 1
        输出："A"
     -->
    <script>
        var convert = function (s, numRows) {
            if (numRows === 1) {
                console.log(s)
            }
            // 定义一组长度
            let groupLen = numRows * 2 - 2
            let array = new Array(numRows).fill('')
            for (let i = 0; i < s.length; i++) {
                let rem = i % groupLen // 余数
                if (rem <= numRows - 1) {
                    array[rem] += s[i]
                } else {
                    array[groupLen - rem] += s[i]
                }
            }
            console.log(array.join(''))
        };
        convert("PAYPALISHIRING", 3)
    </script>
</body>

</html>